package main

import "fmt"

// 对整数数组进行冒泡排序
func sort(arr []int) []int {
	// 冒泡排序
	for i := 1; i < len(arr); i++ {
		count := 1
		for j := len(arr) - i; j > 0; j-- {
			// 比较
			if arr[count] < arr[count-1] {
				// 交换
				arr[count], arr[count-1] = arr[count-1], arr[count]
			}
			count++
		}
		// 如果已经是排序好的了，则退出循环
		//if isSortedAsc(arr) {
		//	break
		//}
		var flag bool = true
		// 判断：两两比较，只要有一次后面的不大于前面的每一个数，就不是升序
		for i := 1; i < len(arr); i++ {
			for j := 0; j < i; j++ {
				if arr[i] < arr[j] {
					flag = false
					break
				}
			}
			// 如果不是升序，则退出外层循环
			if !flag {
				break
			}
		}
		if flag {
			break
		}
	}
	return arr
}
func main() {
	arr := []int{1, 11, 111, 2, 22, 222}
	fmt.Println("比较之前：", arr)
	arr = sort(arr)
	fmt.Println("比较之后：", arr)
}
